/*
 * Parametro.cpp
 *
 *  Created on: May 30, 2013
 *      Author: root
 */

#include "model/clases/Parametro.h"

Parametro::Parametro(const Parametro& parametro){
    this->nombre = parametro.nombre;
    this->tipoDato = parametro.tipoDato;
    this->valor = parametro.valor;
}

std::string Parametro::description() {
	std::string d = "";
	d += this->nombre;
	d += ": " + (tipoDato.size() ? tipoDato : "void");
	return d;
}

void Parametro::serialize(XmlWriter & writer_rep, XmlWriter & writer_comp) {

	xmlNode* comp_hijo = writer_comp.addCurrentNodeChild(NODE_PARAM, "");
	writer_comp.addProperty(comp_hijo, TARGET_NAME, nombre.c_str());
	writer_comp.addProperty(comp_hijo, "tipoDato", tipoDato.c_str());
	writer_comp.addProperty(comp_hijo, "valor", valor.c_str());

}

void Parametro::deserialize(XmlReader & reader, XmlReader & readerModel) {

	std::string nombre = readerModel.getCurrentNodeProperty(TARGET_NAME);
	this->nombre = nombre;

	std::string tipo = readerModel.getCurrentNodeProperty("tipoDato");
	this->tipoDato = tipo;

	std::string valor = readerModel.getCurrentNodeProperty("valor");
	this->valor = valor;

}
